package com.weibo4j.api.domain;

import java.util.Date;

import com.alibaba.fastjson.annotation.JSONField;
import com.weibo4j.api.domain.enums.Gender;


public class User {

    private Long    id;

    private String  idStr;

    @JSONField(name = "screen_name")
    private String  screenName;

    private String  name;

    private String  province;

    private String  city;

    private String  location;

    private String  description;

    private String  url;

    @JSONField(name = "profile_image_url")
    private String  profileImageUrl;

    @JSONField(name = "profile_url")
    private String  profileUrl;

    private String  domain;

    private String  weihao;

    private Gender  gender;

    @JSONField(name = "followers_count")
    private Integer followersCount;

    @JSONField(name = "friends_count")
    private Integer friendsCount;

    @JSONField(name = "statuses_count")
    private Integer statusesCount;

    @JSONField(name = "favourites_count")
    private Integer favouritesCount;

    @JSONField(name = "created_at", format = "EEE MMM dd HH:mm:ss Z yyyy")
    private Date  createdAt;

    private Boolean following;

    @JSONField(name = "allow_all_act_msg")
    private Boolean allowAllActMsg;

    @JSONField(name = "geo_enabled")
    private Boolean geoEnabled;

    private Boolean verified;

    @JSONField(name = "verified_type")
    private Integer verifiedType;
    
    private String  remark;

    @JSONField(name = "allow_all_comment")
    private Boolean allowAllComment;

    @JSONField(name = "avatar_large")
    private String  avatarLarge;

    @JSONField(name = "verified_reason")
    private String  verifiedReason;

    @JSONField(name = "follow_me")
    private Boolean followMe;

    @JSONField(name = "online_status")
    private Integer onlineStatus;

    @JSONField(name = "bi_followers_count")
    private Integer biFollowersCount;

    private String  lang;

    private Status 	status;
    
    public Long getId() {
		return id;
	}



	public void setId(Long id) {
		this.id = id;
	}



	public String getIdStr() {
		return idStr;
	}



	public void setIdStr(String idStr) {
		this.idStr = idStr;
	}



	public String getScreenName() {
		return screenName;
	}



	public void setScreenName(String screenName) {
		this.screenName = screenName;
	}



	public String getName() {
		return name;
	}



	public void setName(String name) {
		this.name = name;
	}



	public String getProvince() {
		return province;
	}



	public void setProvince(String province) {
		this.province = province;
	}



	public String getCity() {
		return city;
	}



	public void setCity(String city) {
		this.city = city;
	}



	public String getLocation() {
		return location;
	}



	public void setLocation(String location) {
		this.location = location;
	}



	public String getDescription() {
		return description;
	}



	public void setDescription(String description) {
		this.description = description;
	}



	public String getUrl() {
		return url;
	}



	public void setUrl(String url) {
		this.url = url;
	}



	public String getProfileImageUrl() {
		return profileImageUrl;
	}



	public void setProfileImageUrl(String profileImageUrl) {
		this.profileImageUrl = profileImageUrl;
	}



	public String getProfileUrl() {
		return profileUrl;
	}



	public void setProfileUrl(String profileUrl) {
		this.profileUrl = profileUrl;
	}



	public String getDomain() {
		return domain;
	}



	public void setDomain(String domain) {
		this.domain = domain;
	}



	public String getWeihao() {
		return weihao;
	}



	public void setWeihao(String weihao) {
		this.weihao = weihao;
	}



	public Gender getGender() {
		return gender;
	}



	public void setGender(Gender gender) {
		this.gender = gender;
	}



	public Integer getFollowersCount() {
		return followersCount;
	}



	public void setFollowersCount(Integer followersCount) {
		this.followersCount = followersCount;
	}



	public Integer getFriendsCount() {
		return friendsCount;
	}



	public void setFriendsCount(Integer friendsCount) {
		this.friendsCount = friendsCount;
	}



	public Integer getStatusesCount() {
		return statusesCount;
	}



	public void setStatusesCount(Integer statusesCount) {
		this.statusesCount = statusesCount;
	}



	public Integer getFavouritesCount() {
		return favouritesCount;
	}



	public void setFavouritesCount(Integer favouritesCount) {
		this.favouritesCount = favouritesCount;
	}



	public Date getCreatedAt() {
		return createdAt;
	}



	public void setCreatedAt(Date createdAt) {
		this.createdAt = createdAt;
	}



	public Boolean getFollowing() {
		return following;
	}



	public void setFollowing(Boolean following) {
		this.following = following;
	}



	public Boolean getAllowAllActMsg() {
		return allowAllActMsg;
	}



	public void setAllowAllActMsg(Boolean allowAllActMsg) {
		this.allowAllActMsg = allowAllActMsg;
	}



	public Boolean getGeoEnabled() {
		return geoEnabled;
	}



	public void setGeoEnabled(Boolean geoEnabled) {
		this.geoEnabled = geoEnabled;
	}



	public Boolean getVerified() {
		return verified;
	}



	public void setVerified(Boolean verified) {
		this.verified = verified;
	}



	public Integer getVerifiedType() {
		return verifiedType;
	}



	public void setVerifiedType(Integer verifiedType) {
		this.verifiedType = verifiedType;
	}



	public String getRemark() {
		return remark;
	}



	public void setRemark(String remark) {
		this.remark = remark;
	}



	public Boolean getAllowAllComment() {
		return allowAllComment;
	}



	public void setAllowAllComment(Boolean allowAllComment) {
		this.allowAllComment = allowAllComment;
	}



	public String getAvatarLarge() {
		return avatarLarge;
	}



	public void setAvatarLarge(String avatarLarge) {
		this.avatarLarge = avatarLarge;
	}



	public String getVerifiedReason() {
		return verifiedReason;
	}



	public void setVerifiedReason(String verifiedReason) {
		this.verifiedReason = verifiedReason;
	}



	public Boolean getFollowMe() {
		return followMe;
	}



	public void setFollowMe(Boolean followMe) {
		this.followMe = followMe;
	}



	public Integer getOnlineStatus() {
		return onlineStatus;
	}



	public void setOnlineStatus(Integer onlineStatus) {
		this.onlineStatus = onlineStatus;
	}



	public Integer getBiFollowersCount() {
		return biFollowersCount;
	}



	public void setBiFollowersCount(Integer biFollowersCount) {
		this.biFollowersCount = biFollowersCount;
	}



	public String getLang() {
		return lang;
	}



	public void setLang(String lang) {
		this.lang = lang;
	}



	public Status getStatus() {
		return status;
	}



	public void setStatus(Status status) {
		this.status = status;
	}



	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		User other = (User) obj;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		return true;
	}

}
